# Android 环境配置
# 这个文件包含所有 Android 开发相关的配置

# ========== Android SDK 路径配置 ==========

# 检测 Android SDK 是否已安装
if [ -d "$HOME/Library/Android/sdk" ]; then
  export ANDROID_HOME="$HOME/Library/Android/sdk"
  log_success "Android SDK 已配置: $ANDROID_HOME"
elif [ -d "/usr/local/share/android-sdk" ]; then
  export ANDROID_HOME="/usr/local/share/android-sdk"
  log_success "Android SDK 已配置: $ANDROID_HOME"
else
  export ANDROID_HOME="$HOME/Library/Android/sdk"
  log_warning "Android SDK 目录未找到，使用默认路径: $ANDROID_HOME"
  log_info "请通过 Android Studio 或 sdkmanager 安装 Android SDK"
fi

# 将 Android 工具加入 PATH
if [ -d "$ANDROID_HOME" ]; then
  # 添加旧工具路径 (兼容性)
  if [ -d "$ANDROID_HOME/tools" ]; then
    export PATH="$PATH:$ANDROID_HOME/tools"
  fi
  
  if [ -d "$ANDROID_HOME/tools/bin" ]; then
    export PATH="$PATH:$ANDROID_HOME/tools/bin"
  fi
  
  # 添加核心工具路径
  if [ -d "$ANDROID_HOME/platform-tools" ]; then
    export PATH="$PATH:$ANDROID_HOME/platform-tools"
  fi
  
  # 添加模拟器路径
  if [ -d "$ANDROID_HOME/emulator" ]; then
    export PATH="$PATH:$ANDROID_HOME/emulator"
  fi
  
  # 添加 cmdline-tools 路径 (新版SDK)
  if [ -d "$ANDROID_HOME/cmdline-tools" ]; then
    # 查找最新版本
    LATEST_CMDLINE_TOOLS=$(ls -1 "$ANDROID_HOME/cmdline-tools" 2>/dev/null | grep -v latest | sort -V | tail -n 1)
    if [ -n "$LATEST_CMDLINE_TOOLS" ] && [ -d "$ANDROID_HOME/cmdline-tools/$LATEST_CMDLINE_TOOLS/bin" ]; then
      export PATH="$PATH:$ANDROID_HOME/cmdline-tools/$LATEST_CMDLINE_TOOLS/bin"
    elif [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then
      export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"
    fi
  fi
fi

# ========== 环境检测函数 ==========

# 检查 Android 工具是否可用
function check_android_env() {
  log_header "Android 环境检测"
  
  # 检查 ANDROID_HOME
  log_env "ANDROID_HOME" "$ANDROID_HOME"
  
  # 检查核心工具
  if command -v adb &>/dev/null; then
    log_version "ADB" "$(adb version 2>/dev/null | head -n 1)"
  else
    log_not_installed "ADB"
  fi
  
  if command -v emulator &>/dev/null; then
    log_version "Emulator" "$(emulator -version 2>/dev/null | head -n 1)"
  else
    log_not_installed "Emulator"
  fi
  
  # 检查 SDK 管理器
  if command -v sdkmanager &>/dev/null; then
    log_version "SDK Manager" "可用"
  else
    log_not_installed "SDK Manager"
  fi
  
  # 检查 AVD 管理器
  if command -v avdmanager &>/dev/null; then
    log_version "AVD Manager" "可用"
  else
    log_not_installed "AVD Manager"
  fi
  
  # 检查 Gradle (如果安装了)
  if command -v gradle &>/dev/null; then
    log_gradle "$(gradle -v 2>/dev/null | grep Gradle)"
  else
    log_not_installed "Gradle"
  fi
}

# 环境状态函数
function android-status() {
  check_android_env
}

# 路径信息函数
function android-paths() {
  log_android_paths
}

# ========== Android 工具别名 ==========

# ADB 快捷命令
alias adb-devices="adb devices -l"
alias adb-restart="adb kill-server && adb start-server"
alias adb-screenshot="adb exec-out screencap -p > screen-\$(date +%Y%m%d-%H%M%S).png"

# 模拟器快捷命令
alias emu-list="emulator -list-avds"
alias emu-start="function _emulator() { emulator -avd \$1 \$2 \$3 \$4; }; _emulator"

# AVD 管理快捷命令
alias avd-list="avdmanager list avd"
alias avd-create="avdmanager create avd"
alias avd-delete="avdmanager delete avd"

# 安装帮助函数
function setup_android_sdk() {
  log_header "Android SDK 安装向导"
  
  if [ ! -d "$ANDROID_HOME" ]; then
    mkdir -p "$ANDROID_HOME"
  fi
  
  log_info "请选择安装方式:"
  log_info "1) 通过 Android Studio 安装 (推荐)"
  log_info "2) 通过命令行安装最小SDK"
  log_info "3) 退出"
  
  read "choice?请输入选项 [1-3]: "
  
  case $choice in
    1)
      log_info "请下载并安装 Android Studio: https://developer.android.com/studio"
      log_info "安装完成后，启动 Android Studio 并按提示安装 SDK"
      ;;
    2)
      log_info "通过命令行安装最小SDK..."
      log_info "下载 cmdline-tools..."
      
      # 创建临时目录
      TEMP_DIR=$(mktemp -d)
      
      # 确定平台
      if [[ "$(uname)" == "Darwin" ]]; then
        PLATFORM="mac"
      else
        PLATFORM="linux"
      fi
      
      # 下载SDK命令行工具
      curl -o "$TEMP_DIR/cmdline-tools.zip" "https://dl.google.com/android/repository/commandlinetools-${PLATFORM}-9477386_latest.zip"
      
      # 创建目标目录
      mkdir -p "$ANDROID_HOME/cmdline-tools/latest"
      
      # 解压
      unzip -q "$TEMP_DIR/cmdline-tools.zip" -d "$TEMP_DIR"
      mv "$TEMP_DIR/cmdline-tools"/* "$ANDROID_HOME/cmdline-tools/latest/"
      
      # 清理
      rm -rf "$TEMP_DIR"
      
      # 设置环境变量
      export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"
      
      # 安装基本组件
      log_info "安装基本SDK组件..."
      yes | sdkmanager --licenses > /dev/null 2>&1
      sdkmanager "platform-tools" "build-tools;33.0.2" "platforms;android-33" "emulator"
      
      log_success "Android SDK 基本组件安装完成"
      ;;
    3)
      log_info "退出安装向导"
      ;;
    *)
      log_error "无效选项"
      ;;
  esac
}

function android-setup() {
  setup_android_sdk
}

# 当加载此文件时显示 Android 环境已添加
log_info "Android 环境已加载, 使用 android-status 查看当前配置" 